package com.oss.controller.system;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.oss.common.BaseResponse;
import com.oss.dto.dictionary.*;
import com.oss.entity.system.DictionaryType;
import com.oss.service.system.DictionaryTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

/**
 * @author chengqiang
 */
@RestController
@RequestMapping("/dictionaryType")
public class DictionaryTypeController {
    @Autowired
    DictionaryTypeService dictionaryTypeService;

    /**
     * 添加数据字典类型
     * @param dto 入参
     * @return 返回提示信息
     */
    @RequestMapping("/addDictionaryType")
    public BaseResponse<String> addDictionaryType(@RequestBody @Valid DictionaryTypeAddDto dto){
        return dictionaryTypeService.addDictionaryType(dto);
    }

    /**
     * 删除数据字典类型
     * @param dto 入参
     * @return 返回提示信息
     */
    @RequestMapping("/deleteDictionaryType")
    public BaseResponse<String> deleteDictionaryType(@RequestBody @Valid DictionaryTypeDeleteDto dto){
        return BaseResponse.success(dictionaryTypeService.deleteDictionaryType(dto));
    }

    /**
     * 更新数据字典类型
     * @param dto 入参
     * @return 返回提示信息
     */
    @RequestMapping("/updateDictionaryType")
    public BaseResponse<String> updateDictionaryType(@RequestBody @Valid DictionaryTypeUpdateDto dto){
        return BaseResponse.success(dictionaryTypeService.updateDictionaryType(dto));
    }
    /**
     * 获取数据字典类型详情
     * @param dto 入参
     * @return 返回提示信息
     */
    @RequestMapping("/getDictionaryTypeById")
    public BaseResponse<DictionaryType> getDictionaryTypeById(@RequestBody @Valid GetOneDictionaryTypeDto dto){
        return BaseResponse.success(dictionaryTypeService.getById(dto.getDicTypeId()));
    }
    /**
     * 数据字典类型分页查询
     * @param dto 入参
     * @return 返回分页数据
     */
    @RequestMapping("/selectByPage")
    public BaseResponse<IPage<DictionaryType>> selectByPage(@RequestBody @Valid DictionaryTypePageDto dto){
        return BaseResponse.success(dictionaryTypeService.selectByPage(dto));
    }
}
